Systems and methods for swipe-to-like

ABSTRACT

Example systems and methods are described for implementing a swipe-to-like feature. In an example implementation, a list of content items is displayed on a touchscreen display, and based on detecting input of a first gesture, such as, for example, a swipe gesture, for a first one of the content items in the list, associating a predetermined first sentiment with the first content item.

CROSS REFERENCE TO RELATED APPLICATIONS

This disclosure claims the benefit of U.S. Provisional Application No.62/830,308 filed on Apr. 5, 2019, the entire content of which is hereinincorporated in its entirety.

FIELD OF THE DISCLOSURE

This disclosure relates generally to user interfaces of communicationdevices, and in particular relates to associating sentiments withselected content items.

BACKGROUND

The use of social media for communications continues to be adopted bymore and more segments of society, and the frequency of use such socialmedia is also increasing. As the use of social media grows, it isimportant to optimize the display area of the communication/computingdevices so that the most useful information can be displayed, andunnecessary clutter on the display can be avoided.

Many users interact with each other on social media by assigningsentiments such as “like” and “dislike” to messages. Thus, it isimportant that an efficient and convenient layout of the screen andtechniques for signaling such sentiment are available for users to view.

SUMMARY OF EMBODIMENTS

Example embodiments provide an efficient and convenient technique ofusing a swipe gesture to selectively assign a sentiment to one or morecontent items in a listing of content items.

An example method embodiment comprises displaying a list of contentitems on a display screen, and based on detecting input of a first swipegesture for a first one of the content items in the list, associating apredetermined first sentiment with the first content item.

An example client device embodiment comprises a network interface, atouchscreen display, and a processing system comprising at least oneprocessor. The processing system is configured to display a list ofcontent items on the touchscreen display, and based on detecting inputof a first swipe gesture for a first one of the content items in thelist, associate a predetermined first sentiment with the first contentitem.

A non-transitory computer readable storage medium embodiment storesprogram instructions that when executed by at least one processor of acomputer, causes the computer to perform operations comprisingdisplaying a list of content items on a touchscreen display, and basedon detecting input of a first swipe gesture for a first one of thecontent items in the list, associating a predetermined first sentimentwith the first content item.

A system embodiment comprises a server device, and a plurality of clientdevices connected to the server device over a communication network. Theserver device is configured to receive new content items from respectiveclient devices and distribute the received new content items to groupsof client devices, to receive selection information associated with thedistributed new content items, and to update the distributed new contentitems in accordance with the received selection information. Each clientdevice is configured to perform operations comprising displaying a listof content items on a display, and based on detecting input of a firstswipe gesture for a first one of the content items in the list,associating a predetermined first sentiment with the first content item.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings facilitate an understanding of non-limiting,example embodiments of the disclosed technology. In the drawings:

FIG. 1 illustrates a messaging system according to one or more exampleembodiments;

FIG. 2 (FIGS. 2A, 2B, 2C and 2D) illustrates sequence of screenscaptured during a swipe-to-like operation in accordance with one or moreexample embodiments;

FIG. 3 illustrates a flowchart for a swipe-to-like process according toone or more example embodiments;

FIG. 4 illustrates a flowchart for a process for adapting certaincharacteristics of the process shown in FIG. 3 based on the swipe, inaccordance with one or more example embodiments;

FIG. 5 illustrates a block diagram of an example client device inaccordance with some example embodiments; and

FIG. 6 illustrates a block diagram for an example computer on which themessaging platform and/or the client device can be implemented accordingto some example embodiments.

DETAILED DESCRIPTION OF EXAMPLE EMBODIMENTS

In the following description, for purposes of explanation, numerousspecific details are set forth to provide a thorough understanding ofthe example embodiments. It will be evident, however, to a personskilled in the art, that the example embodiments may be practicedwithout these specific details.

FIG. 1 illustrates a non-limiting example messaging system 100 accordingto some example embodiments. Messaging system 100 may operate to providea social media service, such as, for example, Twitter. In exampleembodiments, the messaging system 100 implements a swipe-to-like featureby which content item selection by input of a swiping gesture by theuser is enabled for associating a predetermined sentiment (e.g. a “like”sentiment) with the selected one or more content items (e.g., tweets orother social media messages, advertisements, email messages, news items,video, multimedia messages or text messages, etc.). Although thediscussion below refers to “swipe-to-like”, it will be appreciated thatthe systems and methods described herein are not limited to swipegestures for liking content and that swipe gestures may be used forassociating other sentiments to messages.

FIG. 1 shows the messaging system 100 which includes a messagingplatform 102 and a client device 104 in accordance with one or moreembodiments. The messaging platform 102 has multiple componentsincluding a frontend module 110, a message repository 112, a connectiongraph repository 114, a stream repository 116, an account repository118, a routing module 120, a graph fanout module 122, and a deliverymodule 124. Various components of the messaging platform 102 can belocated on the same device (e.g., a server, mainframe, desktop PersonalComputer (PC), laptop, Personal Digital Assistant (PDA), telephone,mobile phone, kiosk, cable box, and any other device) or can be locatedon separate devices connected by a network (e.g., a local area network(LAN), the Internet, etc.). Those skilled in the art will appreciatethat there can be more than one of each separate component running on adevice, as well as any combination of these components within a givenembodiment.

In one or more non-limiting example embodiments, the messaging platform102 is a platform for facilitating real-time communication between oneor more entities. For example, the messaging platform 102 may storemillions of accounts of entities such as individuals, groups ofindividuals, software programs, businesses, and/or other entities (e.g.,pseudonym accounts, novelty accounts, etc.). One or more users of eachaccount may use the messaging platform 102 to send messages to otheraccounts inside and/or outside of the messaging platform 102. Themessaging platform 102 may be configured to enable users to communicatein “real-time”, i.e., to converse with other users with a minimal delayand to conduct a conversation with one or more other users duringconcurrent sessions. In other words, the messaging platform 102 mayallow a user to broadcast messages and may display the messages to oneor more other users within a reasonable time frame so as to facilitate alive conversation between the users. Recipients of a message may have apredefined graph relationship with an account of the user broadcastingthe message. In one or more example embodiments, the user is not anaccount holder or is not logged in to an account of the messagingplatform 102. In this case, the messaging platform 102 may be configuredto allow the user to broadcast messages and/or to utilize otherfunctionality of the messaging platform 102 by associating the user witha temporary account or identifier.

In one or more example embodiments, the messaging platform 102 connectsusers to other users (i.e., clients) of the messaging platform 102,exchanges social networking messages between connected users of themessaging platform 102, and provides an interface for a user to createand view social networking messages. In one or more example embodiments,social networking messages are broadcast social networking messages thatare transmitted to at least a set of users. The users in the set may beself-selected (e.g., followers of the transmitting user) or users thatsatisfy a certain status with the transmitting user (e.g., belong to agroup, friend, family, etc.). The social networking messages mayinclude, for example, a comment from a user on a document, personalstatus update, a reference to a document, and any other information. Forpurposes of this disclosure, a social networking message (sometimesherein referred simply as a “message”) can include a user authoredmessage and/or any content (multimedia, audio, video, image, text, etc.)broadcasted/posted by a user of a messaging platform. In someembodiments, the listing of messages on which the first swipe gesture ismade includes any at least one of social media messages, advertisements,email messages, news items, video, multimedia messages or text messages.

The example messaging platform 102 includes functionality to broadcastindividual messages or streams of messages to one or more accounts basedat least partially on a connection graph representing relationshipsbetween those accounts. A stream may be a dynamic list of messagesassociated with one or more accounts or can reflect any arbitraryorganization of messages that is advantageous for the user of anaccount. The routing module 120 includes functionality to receive one ormore social networking messages and to store the social networkingmessages in the message repository 112. The routing module 120 mayinclude functionality to assign an identifier to the social networkingmessage and to provide identification of a sender of the socialnetworking message to the graph fanout module 122.

The graph fanout module 122 includes functionality to retrieve graphdata from the connection graph repository 114 and to use the graph datato determine which accounts in the messaging platform 102 should receivethe social networking message. The graph data, for example, may reflectwhich accounts in the messaging platform are “following” a particularaccount and are, therefore, subscribed to receive social networkingmessages from the particular account.

In one or more embodiments, the delivery module 124 includesfunctionality to receive a list of accounts from the graph fanout module122 and the message identifier generated by the routing module 120 andto insert the message identifier into stream data associated with eachidentified account. The delivery module 124 may then store the messagelist in the stream repository 116. The stream data stored in the streamrepository 116 may constitute one or more streams associated with one ormore user accounts of the social network application. A stream may be adynamic list of social networking messages associated with one or moreaccounts or may reflect any organization of social networking messagesthat is advantageous for the user of an account.

In one or more example embodiments, the frontend module 110 is asoftware application or a set of related software applicationsconfigured to communicate with external entities (e.g., client device104). The frontend module 110 may include an application programminginterface (API) and/or any number of other components used forcommunicating with entities outside of the messaging platform 102. TheAPI may include any number of specifications for making requests fromand/or providing data to the messaging platform 102. For example, afunction provided by the API may provide artist/song recommendations toa requesting client 104.

In one or more example embodiments, the frontend module 110 isconfigured to use one or more of the data repositories (messagerepository 112, connection graph repository 114, stream repository 116,and/or account repository 118) to define streams for serving socialnetworking messages (i.e., stream data) to a user of the account on themessaging platform 102. A user may use any client device 104 to receivethe social networking messages. For example, where the user uses aweb-based client to access the messaging platform 102, an API of thefrontend module 110 may be utilized to define one or more streams and/orto serve the stream data to the client for presentation to the user.Similarly, different forms of message delivery may be handled bydifferent modules in the frontend module 110. In one or moreembodiments, the user may specify particular receipt preferences, whichare implemented by the frontend module 110.

In one or more example embodiments, one or more of the data repositories(message repository 112, connection graph repository 114, streamrepository 116, and/or account repository 146), is a database and/orstorage service residing on one or more servers. For example, one ormore of the data repositories may be implemented as a storage serviceusing service-oriented architecture (SOA) and configured to receiverequests for data and to provide requested data to other components ofthe social network system 100. In another example, the messagerepository 112 may include one or more tables in a distributed databasemanagement system (DBMS), a clustered database, a standalone flat file,and/or any storage software residing on one or more physical storagedevices. Examples of a storage device may include, but are not limitedto, a hard disk drive, a solid state drive, and/or other memory device.Any type of database or storage application may be used, in accordancewith various example embodiments.

In one or more example embodiments, one or more of the data repositories(message repository 112, connection graph repository 114, streamrepository 116, and/or account repository 118) is a separate applicationor set of applications residing on one or more servers external (andcommunicatively coupled) to the messaging platform 102. Alternatively,in one or more embodiments, one or more of the data repositories may bean integrated component of the messaging platform 102 and/or may reside,either partially or entirely, on one or more common hardware devices(e.g., a server).

In one or more example embodiments, the message repository 112 includesfunctionality to store messages and message metadata. The messagemetadata may include an identifier of the broadcasting/posting useraccount of the social networking message, a list of users that receivedthe social networking message, a number of users that received thesocial networking message, statistics (e.g., a ratio of following useraccounts to the broadcasting/posting user account that forward thesocial networking message to non-following user accounts to thebroadcasting/posting user account that forward the social networkingmessage), time and date in which the social networking message istransmitted, and other information. Sentiments, such as, but not limitedto, “like” sentiments and/or “dislike” sentiments may also be associatedwith respective messages in the message repository. According to someexample embodiments, a degree or magnitude may also be associated withthe sentiments.

The connection graph repository 114 may store information about usersand/or corresponding accounts. Specifically, the connection graphrepository may relate user identifiers or one or more accounts of a userto user's preferences and history in the social network application. Forexample, the user preferences and history may include languagepreferences, following user accounts of a user account, topics that auser account is interested in, and any other information.

In some example embodiments, the messaging platform may include amessage selection module (not shown in FIG. 1) and a swipe-to-likeconfiguration module (not shown in FIG. 1) to support the swipe-to-likefeature. However, it should be noted that in some embodiments, theswipe-to-like feature can be implemented without functions that aresolely to support the swipe-to-like feature being implemented at themessage platform 102. The swipe-to-like configurations module mayinclude configuration information such as, for example, swipe-to-likeswiping detection thresholds, predetermined sentiments, indicia ofpredetermined sentiments, animation characteristics for the indicia ofpredetermined sentiments, and assignable weights for the predeterminedsentiments. Such configuration information may be provided by themessaging platform 102 to client device 104 over network connection 106,and the client device 104 may use the received configuration informationin implementing swipe-to-like on its user interface.

The message selection module may operate to process the messages frommessage repository 112 before they are provided to the client device104, in order to associate appropriate swipe-to-like configurations tothe client device. The message selection module may also operate toprocess messages received from the client device before they are used toupdate the relevant repositories 112-118. It should be noted, however,that in some example embodiments, the swipe-to-like feature may beimplemented entirely on the client device 104 with the messagingplatform 102 providing only configuration information and the like forthe feature.

The client device 104 may, in some example embodiments, run a socialmedia application client 128 (e.g. Twitter app). The client device 104also includes a swipe-to-like module 126 which enables the selection ofsocial networking messages and the like by a swipe gesture in order toassociate a predetermined sentiment, such as, a “like” gesture with theselected one or more social media messages.

FIG. 2 (FIGS. 2A, 2B, 2C and 2D) illustrates a non-limiting, example ofa sequence of display screens according to an example embodiment. Thesequence of display screens 202 (screens 202 a, 202 b, 202 c and 202 d)are a selection of screen captures obtained during a swipe-to-likeoperation in accordance with an example embodiment. The display screenmay be a touchscreen of a client device, such as, for example, clientdevice 104.

In the illustrated example, a listing of messages (e.g., a timeline) aredisplayed on the screen when the user of the client device 104 swipesone of the displayed messages. FIG. 2A shows the swipe gesture beingmade using an index finger 214, but any finger or thumb can be used formaking the swipe gesture. According to some example embodiments, thetouchscreen of the client device 104 may be configured to detect contactmade using a pen, pointer, stylus, or other device to perform the swipegesture. In some embodiments, in addition to, or alternatively to,detecting a swipe based on an input on the touchscreen a swipe on anarea of the display screen of the client device may be detected based onnon-touch gestures (e.g. hand or finger-based and/or motion-basedgesture made over the display screen without touching the screen).

The example screens 202 (collectively screens 202 a, 202 b, 202 c and202 d) may include a plurality of displayed messages, such as, forexample, messages 204 and 206. In addition to the displayed messages,the screen 202 may include other displayed elements. For example, a“show more” button 210 operable to expose/display more of a particularmessage, or of a particular thread of messages may be displayed inrelation to the corresponding message or thread. A title bar 207 and/ora tab bar 208 may also be displayed. The title bar 207 may includeindicators for elements such as, for example, time, networkconnectivity, and power status. The tab bar 208 may include one or morevirtual buttons for activating commonly used functions. In theillustrated screen 202, for example, the commonly used functions may befunctions such as, for example, a home function for transitioning thescreen to a home screen or another screen, a search function, a listingof recent messages, and a communication function for communicating withfriends. In some example embodiments, the content items are displayed asa scrollable list of content items.

In embodiments, a swipe gesture may be associated with a particular oneof the displayed messages based on the location of the swipe on thedisplay screen. For example, in the illustration of FIG. 2A, the finger214 swipes within an area 212 which is logically associated in theclient device 104 with message 206.

During or immediately following the swipe gesture, a sentiment indicia216 is displayed on the screen 202. In some example embodiments, thesentiment indicia 216 appears at an initial position and moves along atrajectory to an ending position before disappearing. The sentimentindicia may also appear at some position subsequent to the initialposition and/or disappear at some position before the ending position.

The screen 202 b in FIG. 2B illustrates the sentiment indicia 216during, or after, the swipe gesture along the trajectory. The user'sfinger 214 is not shown in FIGS. 2B, 2C, and 2D for ease ofillustration. The sentiment indicia 216 is not limited to a heart-shapedimage. In some example embodiments, any indicia representative of a“like” operation (e.g., a happy face, thumb up) can be used as thesentiment indicia 216. In some other example embodiments where the swipegesture is used to associate a sentiment other than “like” with therespective messages, an icon representative of that other sentiment(e.g., sad face or thumb down for a “dislike” sentiment) can be used asthe sentiment indicia 216.

In some example embodiments the trajectory of the sentiment indicia 216is the same as, or tracks very closely (e.g. within a predefineddistance threshold) to, the path of the swipe gesture on thetouchscreen. In some example embodiments, the start position of thetrajectory maybe near the edge of the screen on the side at which theswipe was initiated. In some example embodiments, the end position maybe at or near the center of the screen area within the logical area 212.The trajectory may form a straight line, arc or other shape between thestart position and the end position. In some embodiments, in addition tothe start/end position of the swipe gesture, the determination of thetrajectory may also account for the content layout on the screen. Forexample, the trajectory may be determined to minimize occlusion ofcontent while still staying within the bounds of the logical area of theone or more messages to which the swipe is applied. In some exampleembodiments, the start position and end position may be at opposite endsof the logical area 212. In some other example embodiments, the startposition and the end position may be overlapping each other, and or toonear each other such that the moving of the sentiment indicia 216 alongthe trajectory from the start position to the end position is notnoticeable. In some example embodiments, the sentiment indicia 216 startand end positions overlap regardless of the path of the swipe gesture.

The screen 202 c in FIG. 2C illustrates the sentiment indicia 216 withspecial effects 218. In the illustrated example, the special effects maybe intended to illustrate the sentiment indicia 216 emanating confetti.For example, the special effects may represent the bursting of thesentiment indicia 216 with confetti. In some example embodiments, thespecial effects may be displayed momentarily before the sentimentindicia 216 disappears from the trajectory and/or the screen 202. Thespecial effects may be provided, for example, to indicate to the userthat the sentiment has been associated with the message.

The screen 202 d in FIG. 2D shows the state of the screen 202 after thesentiment indicia 216 has disappeared from the trajectory and/or thescreen 202. An indicator 220 is now associated with the particularmessage 206 on which the swipe gesture was performed.

According to some example embodiments, the sentiment indicator 220 is aheart-shaped image representing that the particular message 206 has been“liked” by the user of the client device (e.g. the user logged in viathe client device 104 to the social media application). It should benoted that embodiments are not limited to using heart-shaped images forindicator 220. In some embodiments, the indicator 220 can be any image,graphic, and/or alphanumeric identifier. It should also be noted thatexample embodiments are not limited to displaying the indicator 220 inthe illustrated position in relation to message 206. In exampleembodiments, the indicator 220 can be displayed anywhere within thelogical boundary 212 associated with the particular swiped message 206.In some other example embodiments, the indicator 220 can be displayedelsewhere on screen 202 but outside of the logical area 212, whilevisually indicating its association with the particular message 206.

The above described swipe-to-like operation enables the screen to notinclude buttons (e.g. virtual button(s) associated with respectivedisplayed messages) dedicated for expressing particular sentiments, andthus increases the area available for displaying messages and furtherreduces clutter on the screen. When the content items are scrollable, aswipe gesture in a direction orthogonal to the swipe gesture for causingthe swipe-to-like operation can be used to effect the scrolling. In someembodiments, a swipe gesture in a vertical direction (e.g. top-to-bottomor bottom-to-top direction on the display screen, subject to apredefined error tolerance) is considered a swipe gesture for scrollingand a swipe gesture in a substantially orthogonal direction isconsidered as a swipe for swipe-to-like. By configuring for differentswipe gestures to be used for scrolling the list of messages and toselectively express sentiments on individual messages or groups ofmessages, embodiments may provide the user with a faster way in which toexpress a sentiment associated with a displayed message, and thus enablefaster viewing/reading of messages in a list of messages.

FIG. 3 illustrates a flowchart for a process 300 for performing theswipe-to-like functionality in a device such as, for example, clientdevice 104 of a messaging system 100, according to some exampleembodiments.

After entering process 300, at operation 302, one or more content itemsare displayed on the touchscreen of a client device. For example, clientdevice 104 may display content items from a timeline of messages sentfrom the messaging platform 102 to the account of the user of the clientdevice. In FIG. 2 described above, the shown content items comprise atimeline of social media messages. However, the content items in exampleembodiments are not limited thereto, and can include any of social mediamessages, email messages, text messages, advertisements, news items,video thumbnails, and the like, and combinations thereof. In someembodiments, a plurality of content items are displayed on the screen ata time. In some other embodiments, a single content item is displayed onthe screen at a time.

At operation 304, a touch input corresponding to a swipe gesture isdetected. The detection may be based upon the touch input satisfying oneor more predetermined criteria. For example, in order for a touch inputon the touchscreen to be detected as a swipe gesture capable ofeffecting the swipe-to-like feature, the client device would determinethat the touch input (e.g. the touchscreen contact during the swipegesture) satisfies one or more predetermined thresholds. Thesethresholds may be preconfigured in the client device and/or may bereceived from the message platform 102.

The swipe gesture may be associated with one or more of the displayedmessages based on the location of the swipe gesture. For example, whenthe swipe gesture has its start and/or end positions in the logical area212 associated with message 206, the swipe may be associated with themessage 206. In some embodiments, if the swipe gesture spans the logicalareas of multiple messages, then the swipe may be associated with eachof the multiple messages. Detection of the swipe gesture and thedetermination of the content item associated with the display area inwhich the swipe gesture is detected may be performed by theswipe-to-like module 126 based on signals/messages received from thetouch screen and other system components of the client device. Knowntechniques may be used to determine the touch location(s), the path ofthe touch, type of touch, level of pressure associated with the touch,multi-touch detection, and timings and the like associated with thetouch.

In response to the detection of the touch input, a sentiment indicia(e.g. sentiment indicia 216) is displayed and, optionally, moved and/orotherwise animated on the touchscreen. As described in relation to FIG.2, the sentiment indicia can be optionally moved along a trajectorywithin a logical area of the one or more messages with which the swipegesture is associated. As also described in relation to FIG. 2, thesentiment indicia can be optionally animated by introducing specialeffects 218. The animation with special effects may be performed with orwithout the moving of the sentiment indicia.

At operation 308, one or more of the displayed content items selected bythe swipe are updated to include an indicator of a predeterminedsentiment. In FIG. 2, the use of the swipe gesture to associate a “like”sentiment with a selected message was illustrated. However, in someembodiments, other sentiments (e.g. “dislike” etc.) can be associatedwith the messages by the swipe gesture.

In some embodiments, an additional input may be conveyed in combinationwith the swipe-to-like gesture. For example, in some exampleembodiments, the user may follow the first swipe gesture with a secondswipe gesture. The second swipe gesture may be made on multiple ones ofthe content items. In some embodiments, the second swipe gesture may beused to associate the same sentiment as that of the first swipe gesturewith the multiple content items on which the second swipe was made. Insome embodiments, the second swipe gesture may be associated with asentiment different from that of the first swipe gesture. In someembodiments, the first and second swipe gestures are associated withsentiments that are opposite to each other. For example, whereas thefirst swipe may be associated with the “like” sentiment, the second maybe associated with a “dislike” sentiment. In some example embodiments,the second swipe gesture is made in a direction different to the firstswipe gesture. In some example embodiments, the second swipe gesture ismade in a direction substantially opposite to the first swipe gesture.In some embodiments, the second swipe gesture is performed following thefirst swipe gesture without lifting the finger from the touchscreenafter the first swipe gesture.

In some embodiments, the second swipe gesture is in a substantiallyorthogonal direction and results, in addition to a sentiment such aslike being attached to the content item in response to the first swipegesture, in associating a level of importance with the content item. Insome embodiments, based on the direction of the second swipe operation(e.g. up direction for a first level of importance, down direction for asecond level of importance), either of two levels of importance may beassociated with the content item. Each level of importance may beindicated by displaying the text and/or background of the content itemin a distinctive color (e.g. content item without importance adjustmentdisplayed in default white background, with first level of importance ina yellow background, and with a second level of importance in a bluebackground). The importance information associated with respectivecontent items may be maintained by the client device locally and may beused for modifying the timeline received from the platform 102 todisplay to the user.

In some embodiments, for example, a swipe gesture followed with asecond, different, gesture on the touchscreen may be detected in orderto attach a sentiment such as “like” to a content item (in response tothe first swipe gesture) and to additionally cause a second operation inrelation to the same content item. The second gesture may be a longpress, a swipe in a direction different from the first swipe as alreadydescribed above, a tap with single finger, a tap with multiple fingers,etc. In some embodiments, the second gesture is required to be performedfollowing the first swipe gesture while continuously maintaining thefinger contact with the touchscreen. In some embodiments, the secondgesture is detected by the system based on whether it is performedwithin a predetermined time interval (e.g., within a few tenths of asecond, etc.) after the detected end of the first swipe gesture. Thesecond operation, which is performed in response to the detection of thesecond gesture, may be an operation such as, for example, automaticallyproviding for the user to reply to the content item, marking the contentitem as read (e.g. in order to remove the content item from the timelinewithin a predetermined time), making changes to the default sentimentassociated with the swipe-to-like gesture, attaching a differentsentiment to the content item, associating a level of importance to thecontent item, follow the sender of the content item (e.g. a“like-and-follow” combined operation), mute the sender of the contentitem (e.g. so that subsequently no content items from the sender isincluded in the user's timeline), and the like. The detection of thesecond gesture in combination with the first swipe gesture may beperformed by the swipe-to-like module 126, using, for example, messagesreceived from the touch screen control module and other systemcomponents of the client device.

For example, in some embodiments, a swipe on a content item followed bya long press attaches a sentiment (e.g. “like”) to the content item asdescribed above in relation to FIGS. 1-4 and opens input area in whichthe user can input a reply to the content item. The client device willtransmit the user's reply to the content item to the platform 102. Inanother embodiment, the swipe followed by long press attaches the likesentiment to the content item and then forwards the content item.

In some embodiments, a tap as the above noted second gesture may causethe sentiment associated with the content item in response to the firstswipe gesture to be enhanced. For example, a single tap with one fingerdetected as the second gesture may cause the “like” sentiment associatedwith the content item to be enhanced one level, and if two taps with onefinger are detected, the “like” sentiment may be enhanced two levels.The enhanced sentiments associated with the content can be representedby the size, color and/or other change of the sentiment indicia (e.g.heart icon) associated with the content item. In another embodiment, amulti-finger (e.g. two finger) tap as the second gesture describedabove, causes a second sentiment, different from the sentimentassociated with the first swipe gesture, to be associated with thecontent item. The client device may maintain the changes to thesentiment and/or the additional sentiment selections locally and may usethem for modifying the timeline received from the platform 102 fordisplaying to the user, in some embodiments the client device maytransmit this information to the platform 102 in a manner similar to howthe sentiment associated with the swipe gesture is provided to theplatform 102, or in some embodiments the client device may perform bothmaintaining the information locally and transmitting to the platform102.

In some embodiments, the first gesture (i.e. the first swipe gesture)may be interpreted by the client device to cause different operations inresponse to differences in a detected characteristic of the firstgesture. By detecting a level of pressure (e.g. average, maximum and/orminimum pressure detected on the touch screen by a pressure sensorassociated with the first gesture) and by comparing the detected levelof pressure to one or more predetermined ranges, the client device may,for example, associate the like sentiment with the content item when afirst gesture is determined to be performed with “light” pressure, and,when the first gesture (occurring at another instance in time) isperformed with a “heavier” pressure, associate the like sentiment withthe content item and also perform a second operation such as, forexample, following (or muting) the sender of the content item. Inanother embodiment, the first swipe gesture being performed with onefinger causes the client device to associate the like sentiment with thecontent item, and, the first swipe gesture (occurring at anotherinstance in time) being performed with two or more fingers (e.g.multi-touch) caused the client device to associate the like sentimentwith the content item and also perform a second operation such as, forexample, following (or muting) the sender of the content item.

In some embodiments, a first level of pressure in the first gesture inconjunction with a distance threshold and/or time threshold alsosatisfied by the first gesture, or a second level of pressure in thefirst gesture in conjunction with a time threshold also satisfied by thefirst gesture may cause either a sentiment (e.g. like or anothersentiment noted above) to be associated with a message or an operation(e.g. mute, or another operation associated with a message as notedabove) to be performed in association with a message. The message is oneof the messages in the list of messages being displayed on the touchscreen display upon which the gesture is detected, and the gesture isdetected in the display area in which the message is displayed (e.g. inthe area in which the message body is displayed, that is, the contact ofthe gesture may overlap the body of the displayed message). In someembodiments, the first gesture may include a long press operation.

FIG. 4 illustrates a flowchart for a process 400 for performing theswipe-to-like functionality in a device such as, for example, clientdevice 104. Process 400 may be used optionally to adapt the display ofthe sentiment indicia and/or the updating of the content items selectedby the swipe operation in accordance with certain characteristics of thedetected swipe.

Operation 402 is optionally performed during the detecting of the swipegesture (e.g. during operation 304). In operation 402, one or more inputparameters characterizing the touch input are determined by measuringone or more of the length of the swiping contact, the duration of theswiping contact, exerted pressure during the swipe, velocity of theswipe and/or the size/width of the contact area during the swipe. Theparticular measurements to be made may be determined bypre-configuration. For example, thresholds that qualify touch inputsand/or other motion-based non-touch inputs as swipe gestures that cangive effect to the swipe-to-like feature may be specified in theswipe-to-like configurations module in the messaging platform 102 andprovided to the client device.

An example spatial length (distance) threshold may imply that onlyinputs that maintain the swipe contact of a certain length (e.g.expressed in length units or as a proportion of the edge to edge widthof the touchscreen) are to be considered as swipe gestures that causeactivating the swipe-to-like feature. In some embodiments, the distancethreshold may require the swipe to be exercised across a content item,or to swipe across a predetermined minimum percentage of the displayarea occupied the content item. An example time threshold may imply thatonly touch inputs that maintain touchscreen contact during the swipewithin a certain time range are to be considered as swipe gestures thatcause activating the swipe-to-like feature. An example pressurethreshold may imply that only touch inputs that maintain touchscreencontact within a certain range of exerted pressure are to be consideredas swipe gestures that cause activating the swipe-to-like feature. Anexample velocity threshold may imply that only inputs that exceed apredetermined velocity are considered as swipe gestures forswipe-to-like. An example contact area threshold may imply that onlytouch inputs that are provided using a specified number of fingersand/or types of finger contact during the swipe are to be considered asswipe gestures that cause activating the swipe-to-like feature.

At operation 404, the sentiment indicia and/or the trajectory alongwhich the sentiment indicia is moved is adapted in accordance with theone or more input parameters determined in operation 402.

In some example embodiments, the icon or image used as the sentimentindicia can be selected in accordance with the one or more inputparameters. For example, based upon a value of the one or more inputparameters, the sentiment indicia may be chosen and/or the size of thesentiment indicia can be chosen to represent a low degree of “like” or ahigh degree of “like”, a low degree of “dislike”, a high degree of“dislike” etc. For example, a high degree of “like” (signaled, forexample, by a characteristic such as a longer distance of the swipe) maybe represented by a large “heart” icon, whereas a low degree of “like”is represented with a small “heart” icon.

In some example embodiments, the animation of the sentiment indicia maybe adapted in accordance with the one or more input parameters. Forexample, based upon a value of the one or more input parameters thespecial effects associated with the animation and/or the trajectory ofthe sentiment indicia can be adapted to represent a low degree of “like”or a high degree of “like”, a low degree of “dislike”, a high degree of“dislike” etc.

At operation 406, the updating of the content items performed atoperation 306 is adapted in accordance with the one or more inputparameters determined in operation 402. For example, based upon a valueof the one or more input parameters a high or low degree or magnitude of“like” sentiment can be associated with the selected content item. Insome embodiments, the messaging platform is notified to indicate thatthe selected content item is associated with the particular sentimentand optionally the degree of the particular sentiment. The messagingplatform, in one or more of its repositories, stores the association ofthe selected content item and the sentiment and optionally the degree ofthe particular sentiment.

FIG. 5 illustrates an example computing device according to one or moreaspects described herein. Computing device 500 may include one or morehardware and/or software components, such as processor 502, memory 504,input/output interface 506, touch sensitive display 508, networkinterface 510, keypad interface 512, and audio interface 514. Byincluding one or more of these and/or other components, computing device500 may be used as a desktop computer, laptop computer, server, tabletcomputer, netbook, cellular phone, mobile computing device, and/or thelike. In at least one arrangement, computing device 500 may include aplurality of each of the components described herein. For instance, inat least one arrangement, computing device 500 may include two or moreprocessors.

In one or more arrangements, processor 502 may executecomputer-executable and/or computer-readable instructions stored inmemory 504. For instance, processor 502 may execute instructions thatcause one or more of the methods described herein to be performed bycomputing device 500. Additionally or alternatively, processor 502 mayexecute instructions that cause one or more user interfaces describedherein to be displayed on a display included in computing device 500,such as touch sensitive display 508.

In one or more arrangements, touch sensitive display 508 (also referredto as “touchscreen”) may comprise an electronic visual display (e.g., aliquid crystal display (“LCD”) screen, a plasma display panel (“PDP”), acathode ray tube (“CRT”) display, a light emitting diode (“LED”)display, and/or an organic light emitting diode (“OLED”) display). Touchsensitive display 508 may respond to touch-based user input and thus mayfunction as a “touch screen” display. Touch sensitive display 508 mayimplement one or more touch sensing technologies (e.g., resistive,surface acoustic wave, capacitive, strain gauge, optical imaging,dispersive signal technology, acoustic pulse recognition, coded LCD,etc.).

In one or more arrangements, input/output interface 506 may include oneor more adapters, connection ports, and other components via whichcomputing device 500 may provide input and output. For instance,input/output interface 506 may include one or more adapters foroutputting data to and/or receiving data from a display (e.g., forproviding audiovisual, graphical, and/or textual output), keypad,microphone, mouse, optical reader, scanner, speaker (e.g., for providingaudio output), stylus, touch screen, and/or other component.Input/output interface 506 further may include a USB port, serial port,parallel port, IEEE 1394/Firewire port, APPLE iPod Dock port, and/orother ports.

In one or more arrangements, network interface 510 may establish and/orprovide network connectivity to a network (e.g., a local area network, awide area network, such as the Internet, etc.). Network interface 510thus may include hardware and/or software components for communicatingvia Ethernet, TCP/IP, FTP, HTTP, HTTPS, and/or other protocols. Thenetwork interface 510 may additionally or alternatively establish and/orprovide network connectivity to a wireless network (e.g., a local areanetwork, a wide area network, such as the Internet, a cellular voiceand/or data network, etc.). Wireless interface 512 thus may includehardware and/or software components for communicating via Ethernet,TCP/IP, FTP, HTTP, HTTPS, IEEE 802.11b/g/a/n, Bluetooth, CDMA, TDMA, GSMand/or other protocols.

In one or more arrangements, keypad interface 512 may include one ormore physical keys, buttons, and/or switches that may be operated toprovide input to and/or control various aspects of computing device 500.Audio interface 514 may include one or more speakers, audio ports (e.g.,a headphone jack), microphones, and/or other audio components. Audiointerface 114 may allow computing device 500 to provide audio feedback,receive audio input (e.g., sound input, speech commands, etc.), and/orprovide telephone functionalities.

FIG. 6 illustrates a non-limiting, example block diagram for an exampledevice 600. The example device 600 may be a computer implementing any ofthe clients or any of the servers described above in connection withFIGS. 1-5, or a device hosting at least one of these clients and/or oneof these servers. In this example embodiment, the device 600 includes acommunication module 610 including communication circuitry and circuitry(e.g., a transceiver), an input/output module 620 including I/O circuitsand circuitry, a processing system 630 including a processor, and astorage 640, all of which may be communicatively linked by a system bus,network, or other connection mechanisms.

The communication module 610 functions to allow the device 600 tocommunicate with one or more of the other devices (e.g., user devices,clients, servers or a global server). The communication module 610 isconfigured to transmit data to other devices and/or receive data fromother devices.

In certain example embodiments, the communication module 610 maycomprise one or more communication interfaces supporting satellitecommunications, radio communications, telephone communications, cellularcommunications, internet communications, and/or the like. In otherexample embodiments, the communication module 610 may comprise awireless transceiver with connected antenna, a wireless LAN module, aradio-frequency (RF), Infrared, or Bluetooth® transceiver, and/or a nearfield communication transceiver module. One or more of thesecommunication components may collectively provide a communicationmechanism by which the device 600 can communicate with other devices,platform and/or networks.

The data storage 640 may comprise one or more volatile and/ornon-volatile storage components, such as, a hard disk, a magnetic disk,an optical disk, read only memory (ROM) and/or random access memory(RAM), and may include removable and/or non-removable components. Thedate storage 640 may be integrated in whole or in part with theprocessing system 630.

The processing system 630 may comprise one or more processors 631,including one or more general purpose processors and/or one or morespecial purpose processors (i.e., DSPs, GPUs, FPs or ASICs). Theprocessing system 630 may be capable of executing application programinstructions (e.g., compiled or non-compiled program and/or machinecode) stored in data storage 640 to perform any of the functions andprocesses described above. The data storage 640 may includenon-transitory computer-readable medium, having stored thereon programinstructions that, if executed by the processing system 630, cause thedevice 600 to perform any of the processes or functions disclosed hereinand/or illustrated by the accompanying drawings.

In certain example embodiments, the program instructions stored in thestorage 640 may include an operating system program and one or moreapplication programs, such as program instructions for one of theabove-described load balancers. For example, the operations in exampleprocesses of FIGS. 1-4 can be defined by the program instructions storedin the storage 640 and controlled by processing system 630 executing theprogram instructions.

The input/output module 620 of the device 600 may enable the device 600to interact with a human or non-human user, such as to receive inputfrom a user and to provide output to the user. The input/output module620 may include a touch-sensitive or presence-sensitive panel, keypad,keyboard, trackball, joystick, microphone, still camera and/or videocamera, and the like. The input/output module 620 may also include oneor more output components such as a display device, which may becombined with a touch-sensitive or presence-sensitive panel. In anexample embodiment, the input/output module 620 may display various userinterfaces to enable a user or an operator to access services orfunctions provided by the device 600.

While the disclosed technology has been described in connection withwhat is presently considered to be the most practical and preferredembodiments, it is to be understood that the systems and methoddescribed herein are not to be limited to the disclosed embodiments, buton the contrary, are intended to cover various modifications andequivalent arrangements included within the spirit and scope of theappended claims.

What is claimed is:
 1. A method performed by one or more processors of adevice, comprising: receiving, using a network interface of the device,content items from one or more other devices; displaying a list of thecontent items on a display screen; detecting input of a first swipegesture in a display area of the display screen; and in response to thedetecting (1) identifying a first one of the content items in accordancewith a trajectory of the first swipe gesture, and (2) associating apredetermined first sentiment with the first content item.
 2. The methodaccording to claim 1, wherein the predetermined first sentiment is alike sentiment.
 3. The method according to claim 1, wherein the contentitems are messages.
 4. The method according to claim 1, furthercomprising displaying indicia indicative of the predetermined firstsentiment during input of the first swipe gesture.
 5. The methodaccording to claim 4, wherein the indicia is animated.
 6. The methodaccording to claim 4, wherein the indicia comprises a heart indicia. 7.The method according to claim 4, wherein the indicia is displayed inaccordance with a threshold associated with the first swipe gesture. 8.The method according to claim 7, wherein the threshold corresponds to adistance.
 9. The method according to claim 4, wherein a size of theindicia increases as a distance associated with the first swipe gestureincreases.
 10. The method according to claim 1, wherein a distance ofthe first swipe gesture correlates to an amount of the first sentiment.11. The method according to claim 10, wherein the greater the distanceof the first swipe gesture, the greater the amount of the firstsentiment.
 12. The method according to claim 1, wherein the first swipegesture comprises a swipe gesture across the first content item.
 13. Themethod according to claim 12, further comprising: based on detectinginput of a second swipe gesture, different from the first swipe gesture,for multiple ones of the content items in the list, associating thefirst sentiment with each of the multiple content items.
 14. The methodaccording to claim 1, further comprising: based on detecting input of asecond swipe gesture different from the first swipe gesture for thefirst content item, associating a predetermined second sentimentdifferent from the first sentiment with the first content item.
 15. Themethod according to claim 14, wherein the second swipe gesture is in adirection different from a direction of the first swipe gesture.
 16. Themethod according to claim 14, wherein the second swipe gesture is in adirection substantially opposite from a direction of the first swipegesture.
 17. The method according to claim 1, further comprising: basedon detecting input of a second swipe gesture different from the firstswipe gesture for the first content item, further associating a level ofimportance with the first content item.
 18. The method according toclaim 1, further comprising: in response to detecting input of a secondgesture different from the first swipe gesture for the first contentitem, performing, in addition to associating the predetermined firstsentiment with the first content item, a second operation in relation tothe first content item.
 19. The method according to claim 1, furthercomprising: detecting a characteristic of the first swipe gesture; andbased upon the detected characteristic, either performing theassociating of the predetermined first sentiment with the first contentitem, or performing the associating of the predetermined first sentimentwith the first content item and a second operation in relation to thefirst content item.
 20. The method according to claim 1, wherein thecontent items comprise at least one of social media messages,advertisements, email messages, news items, video, multimedia messagesor text messages.
 21. The method according to claim 1, wherein indiciacorresponding to the first sentiment is newly displayed in associationwith the first message after the input of the first swipe gesture. 22.The method according to claim 21, wherein a size of the indiciacorresponds to an amount of the first sentiment determined based upon acharacteristic of the first swipe gesture.
 23. The method according toclaim 1, wherein the list of content items is scrollable based ondetecting input of a second swipe gesture different from the first swipegesture.
 24. A method performed by one or more processors of a device,comprising: receiving, using a network interface of the device, contentitems from one or more other devices: displaying a list of the contentitems on a touch screen display of a device; detecting input of a firstswipe gesture in a display area of the display screen; and in responseto the detecting (1) identifying a first one of the content items inaccordance with a trajectory of the first swipe gesture, and (2)associating a predetermined first sentiment with the first content item,wherein the detecting of the first swipe gesture is in accordance with alevel of pressure and a duration of a contact on the touch screendisplay.
 25. The method according to claim 24, wherein the predeterminedfirst sentiment is a like sentiment.
 26. The method according to claim24, wherein the content items are messages.
 27. The method according toclaim 24, wherein the first swipe gesture includes a long press gesture.28. The method according to claim 24, wherein the method furthercomprises performing a predetermined first operation in association withthe first content item.
 29. The method according to claim 28, whereinthe predetermined first operation is muting of a sender of the firstcontent item.
 30. A client device comprising: a network interface; atouchscreen display; a processing system comprising at least oneprocessor, wherein the processing system is configured to: receive,using the network interface, content items from one or more otherdevices; display a list of the content items on the touchscreen display;detect input of a first swipe gesture in a display area of the displayscreen; and in response to the detecting (1) identifying of a first oneof the content items in accordance with a trajectory of the first swipegesture, and (2) associate a predetermined first sentiment with thefirst content item.
 31. A non-transitory computer readable storagemedium storing program instructions that when executed by at least oneprocessor of a computer, causes the computer to perform operationscomprising: receiving, using a network interface of the computer,content items from one or more other computers: displaying a list of thecontent items on a touchscreen display; detecting input of a first swipegesture in a display area of the display screen; and in response to thedetecting (1) identifying a first one of the content items in accordancewith a trajectory of the first swipe gesture, and (2) associating apredetermined first sentiment with the first content item.
 32. A systemcomprising: a server device; and a plurality of client devices connectedto the server device over a communication network, wherein the serverdevice is configured to: receive new content items from respectiveclient devices, and distribute the received new content items to groupsof client devices; receive selection information associated with thedistributed new content items; and update the distributed new contentitems in accordance with the received selection information, and whereineach client device being configured to perform operations comprising:displaying a list of content items from the distributed new contentitems on a display; detecting input of a first swipe gesture in adisplay area of the display; and in response to the detecting (1)identifying a first one of the content items in accordance with atrajectory of the first swipe gesture, an (2) associating apredetermined first sentiment with the first content item.
 33. Thesystem according to claim 32, wherein the server is further configuredto store configuration information corresponding to the detecting. 34.The system according to claim 32, wherein at least one said clientdevice detects the first swipe gesture based on a detected non-touchgesture.